package com.xie.leetcode.array;

//628. 三个数的最大乘积
//        给你一个整型数组 nums ，在数组中找出由三个数组成的最大乘积，并输出这个乘积。
//
//
//
//        示例 1：
//
//        输入：nums = [1,2,3]
//        输出：6
//        示例 2：
//
//        输入：nums = [1,2,3,4]
//        输出：24
//        示例 3：
//
//        输入：nums = [-1,-2,-3]
//        输出：-6

import java.util.Arrays;

/**
 * @author xiezhendong
 * @date 2021/11/29
 */
public class MaximumProduct {

    public static void main(String[] args) {
        MaximumProduct maximumProduct = new MaximumProduct();
        System.out.println(maximumProduct.maximumProduct(new int[]{1, 2, 3}));
        System.out.println(maximumProduct.maximumProduct(new int[]{1, 2, 3, 4}));
        System.out.println(maximumProduct.maximumProduct(new int[]{-100, -98, -1, 2, 3, 4}));
    }

    public int maximumProduct(int[] nums) {
        if (nums.length <= 3) {
            return nums[0] * nums[1] * nums[2];
        }
        Arrays.sort(nums);

        int num1 = nums[nums.length - 1] * nums[nums.length - 2] * nums[nums.length - 3];
        int num2 = nums[nums.length - 1] * nums[1] * nums[0];

        return Math.max(num1, num2);
    }
}
